package com.example.graduation.service;

import com.example.graduation.entity.ShoppingCart;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.graduation.form.ShopCartForm;
import com.example.graduation.vo.CartUpdateVo;
import com.example.graduation.vo.CartVo;
import com.example.graduation.vo.ShopCartVo;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xyc
 * @since 2022-02-11
 */
public interface ShoppingCartService extends IService<ShoppingCart> {

    /**
     * 加入订单列表
     *
     * @param shopId
     * @param userId
     * @param goodsIdAndCount
     * @return
     */
    ShopCartVo addOrderList(Integer shopId, Integer userId, String goodsIdAndCount);


    /**
     * 加入购物车，在这里加入的是redis中，方便用户查询
     *
     * @param shopId
     * @param token
     * @param goodsId
     * @param addCount
     */
    public CartVo addCartList(Integer shopId, Integer goodsId, Integer addCount, String token);


    /**
     * 删除购物车列表中的商品内容
     *
     * @param token
     * @param goodsId
     * @return
     */
    public CartVo deleteGoodsVo(String token, Integer goodsId);


    /**
     * 更新购物车列表中的商品信息，在这里主要修改商品的数量和是否选中商品，
     * 因为选中商品会计算本次打算消费的金额
     *
     * @param token
     * @param goodsId
     * @param cartUpdateVo
     * @return
     */
    public CartVo updateCartVo(String token, Integer goodsId, CartUpdateVo cartUpdateVo);
}
